<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 要求：为 bigSword 函数 增加 黑名单过滤功能 - 另外编写函数 checkList(usrName)

        // 1.正规盲人按摩函数
        function bigSword(usrName, jsID, ylName) {
            //a.检查 技师id 是否符合规则
            if (jsID <= 0) {
                alert('技师id不能是负数，你玩我呀~~！');
                return; // 阻断函数运行，立即 退出函数
            }

            // 【检查黑名单】调用 checkList 方法，检查 用户名 是否在黑名单中，如果在，则停止函数执行
            let isInBlack = checkList(usrName);
            if (isInBlack) {
                alert('对不起，您在黑名单中，本店不欢迎你~~~~');
                return;
            }

            console.log(usrName + '先生，选择按摩师~~~' + jsID + '号');
            console.log('开始正规盲人按摩~~~');
            console.log('按摩结束了，请付款：1999~~~');
            console.log(usrName + '先生，付款结束，请喝杯' + ylName + '补充能量~~~');
        }

        // 2.检查用户名是否在黑名单
        //   usrName - 要检查的用户名
        //   返回值 - boolean , true - 在黑名单中； false  - 不在黑名单中
        function checkList(usrName) { // usrName = '大真真'
            //a.黑名单数组
            let blackList = ['徐班长', '刘班长', '龙财务', '大真真'];

            // 【使用 开关思想 检查 用户名 是否在 黑名单中存在】
            //b.提出假设：假设 用户名 在 黑名单数组中 不存在
            let isIn = false;

            //c.验证假设：通过遍历数组，检查 是否 有元素 和 用户名 相等，如果有，则打破假设
            isIn = blackList.some(ele => {
                return ele === usrName
            })

            //d.根据 验证假设结果  处理业务
            return isIn;
        }

        //2.调用函数 -------------------------------------------------------
        let usrName = confirm('请输入您的名字：')
        bigSword(usrName, 999, '4升装肾宝');
    </script>
</head>

<body>

</body>
<!-- author:成都前端_JamesZou 
     from: https://www.jianshu.com/u/00a012fcb7e9
-->

</html>